//============================================================================================
/**
 * @file	zkn2_str.c
 * @brief	金銀図鑑画面 文字表示
 * @author	Hiroyuki Nakamura
 * @date	08.10.06
 */
//============================================================================================
#include "common.h"

#include "zkn2_str.h"



//--------------------------------------------------------------------------------------------
/**
 * 文字列表示（バッファ指定）
 *
 * @param	win		BMPWIN
 * @param	str		文字列バッファ
 * @param	x		表示基準Ｘ座標
 * @param	y		表示基準Ｙ座標
 * @param	fnt		フォント
 * @param	col		カラー
 * @param	mode	表示モード
 *
 * @return	none
 *
 * @li	mode = ZKN2STR_PRINT_MODE_LEFT   : 左詰
 * @li	mode = ZKN2STR_PRINT_MODE_RIGHT  : 右詰
 * @li	mode = ZKN2STR_PRINT_MODE_CENTER : 中央
 */
//--------------------------------------------------------------------------------------------
void ZKN2STR_PrintCore(
				GF_BGL_BMPWIN * win, STRBUF * str,
				u32 x, u32 y, FONT_TYPE fnt, GF_PRINTCOLOR col, u32 mode )
{
	if( mode == ZKN2STR_PRINT_MODE_RIGHT ){
		x -= FontProc_GetPrintStrWidth( fnt, str, 0 );
	}else if( mode == ZKN2STR_PRINT_MODE_CENTER ){
		x -= ( FontProc_GetPrintStrWidth( fnt, str, 0 ) / 2 );
	}
	GF_STR_PrintColor( win, fnt, str, x, y, MSG_NO_PUT, col, NULL );
}

//--------------------------------------------------------------------------------------------
/**
 * 文字列表示（固定文字列）
 *
 * @param	win		BMPWIN
 * @param	man		メッセージマネージャ
 * @param	msgID	文字列ＩＤ
 * @param	x		表示基準Ｘ座標
 * @param	y		表示基準Ｙ座標
 * @param	fnt		フォント
 * @param	col		カラー
 * @param	mode	表示モード
 *
 * @return	none
 *
 * @li	mode = ZKN2STR_PRINT_MODE_LEFT   : 左詰
 * @li	mode = ZKN2STR_PRINT_MODE_RIGHT  : 右詰
 * @li	mode = ZKN2STR_PRINT_MODE_CENTER : 中央
 */
//--------------------------------------------------------------------------------------------
void ZKN2STR_Print(
			GF_BGL_BMPWIN * win, MSGDATA_MANAGER * man,
			u32 msgID, u32 x, u32 y, FONT_TYPE fnt, GF_PRINTCOLOR col, u32 mode )
{
	STRBUF * str = MSGMAN_AllocString( man, msgID );

	ZKN2STR_PrintCore( win, str, x, y, fnt, col, mode );

	STRBUF_Delete( str );
}